package com.example.day07;

public class CloneDemo {
    public static void main(String[] args) {


        Book  b1=new Book(1,"java基础",100.0d);

        BookInfo  bookInfo=new BookInfo(10,"jennie");

        b1.setBookInfo(bookInfo);


        try {
            //clone方法没有走构造 - 直接走的内存 - 内存中直接开辟区域,直接复制

            Book b2= (Book) b1.clone();

            //修改基本数据类型和String
            /**
             * 子类已经克隆完成 ，修改只会改变父类的值
             */
            b1.setId(100);
            b1.setPrice(1789.0d);
            System.out.println(b1);
            b1.getBookInfo().setAuthor("rose");
            //修改对象类型 - bookInfo,对副本对象b2产生了影响  父类改变
            System.out.println(b1.getBookInfo());
            System.out.println(b2);
            System.out.println(b1==b2);
            System.out.println(b2.getBookInfo());
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }


    }
}
